#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int n,m;
const int MAXN=105;
char mp[MAXN][MAXN];
int vis[MAXN][MAXN];
int cnt;
int dir[8][2]={{-1,-1},{0,-1},{1,-1},{-1,0},{1,0},{-1,1},{0,1},{1,1}};
bool check(int i,int j){
    if(i<0 || i>=n || j<0 || j>=m || vis[i][j] || mp[i][j]=='*'){
        return false;
    }
    return true;
}
void dfs(int i,int j,int idx){
    vis[i][j]=idx;
    int ti;
    int tj;
    for(int k=0;k<8;k++){
        ti=i+dir[k][0];
        tj=j+dir[k][1];
        if(check(ti,tj)){
            dfs(ti,tj,idx);
        }
    }
}
void init(){
    memset(mp,'\0',sizeof(mp));
    memset(vis,0,sizeof(vis));
    cnt=0;
}
int main(void){
    //freopen("data.txt","r",stdin);
    while(~scanf("%d%d",&n,&m) && n && m){
        init();
        for(int i=0;i<n;i++){
            scanf("%s",mp[i]);
        }
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                if(mp[i][j]=='@' && !vis[i][j]){
                    dfs(i,j,++cnt);
                }
            }
        }
        printf("%d\n",cnt);
    }
    return 0;
}
